
声明 模块 "net" {

    //@@{ 流:stream }
    导入 * 转为 流 来自 "stream";

    //@@{ 事件组:events }
    导入 * 转为 事件组 来自 "events";
    导入 * 转为 dns 来自 "dns";

    //@@{ 查找函数_:LookupFunction, 查找一个选项_:LookupOneOptions, 错误异常_:ErrnoException }
    类型 查找函数_ = (主机名: 文字, 选项组: dns.查找一个选项_, 回调: (错: NodeJS.错误异常_ | 空值, 地址: 文字, 家族: 数字) => 无值) => 无值;

    //@@{ 地址信息_:AddressInfo }
    接口 地址信息_ {

        //@@{ 地址:address }
        地址: 文字;

        //@@{ 家族:family }
        家族: 文字;

        //@@{ 端口:port }
        端口: 数字;
    }

    //@@{ 套接字构造函数选项_:SocketConstructorOpts }
    接口 套接字构造函数选项_ {

        //@@{ 文件描述符:fd }
        文件描述符?: 数字;

        //@@{ 允许半开:allowHalfOpen }
        允许半开?: 真假;

        //@@{ 可读的:readable }
        可读的?: 真假;

        //@@{ 可写的:writable }
        可写的?: 真假;
    }

    //@@{ TCP套接字连接选项_:TcpSocketConnectOpts }
    接口 TCP套接字连接选项_ {

        //@@{ 端口:port }
        端口: 数字;

        //@@{ 主机:host }
        主机?: 文字;

        //@@{ 本地地址:localAddress }
        本地地址?: 文字;

        //@@{ 本地端口:localPort }
        本地端口?: 数字;

        //@@{ 提示:hints }
        提示?: 数字;

        //@@{ 家族:family }
        家族?: 数字;

        //@@{ 查找:lookup, 查找函数_:LookupFunction }
        查找?: 查找函数_;
    }

    //@@{ IPC套接字连接选项_:IpcSocketConnectOpts }
    接口 IPC套接字连接选项_ {

        //@@{ 路径:path }
        路径: 文字;
    }

    //@@{ 套接字连接选项_:SocketConnectOpts, TCP套接字连接选项_:TcpSocketConnectOpts, IPC套接字连接选项_:IpcSocketConnectOpts }
    类型 套接字连接选项_ = TCP套接字连接选项_ | IPC套接字连接选项_;

    //@@{ 套接字_:Socket, 流:stream, 双工_:Duplex }
    类别 套接字_ 扩展 流.双工_ {

        //@@{ 套接字构造函数选项_:SocketConstructorOpts }
        构造(选项组?: 套接字构造函数选项_);

        // Extended base methods

        //@@{ 写:write, 缓冲区_:Buffer, 正整数数组8_:Uint8Array, 错误_:Error }
        写(缓冲区: 缓冲区_ | 正整数数组8_ | 文字, 回调?: (错?: 错误_) => 无值): 真假;

        //@@{ 写:write, 缓冲区_:Buffer, 正整数数组8_:Uint8Array, 错误_:Error }
        写(字符串: 缓冲区_ | 正整数数组8_ | 文字, 编码?: 文字, 回调?: (错?: 错误_) => 无值): 真假;

        //@@{ 连接:connect, 套接字连接选项_:SocketConnectOpts }
        连接(选项组: 套接字连接选项_, 连接监听器?: () => 无值): 本体;

        //@@{ 连接:connect }
        连接(端口: 数字, 主机: 文字, 连接监听器?: () => 无值): 本体;

        //@@{ 连接:connect }
        连接(端口: 数字, 连接监听器?: () => 无值): 本体;

        //@@{ 连接:connect }
        连接(路径: 文字, 连接监听器?: () => 无值): 本体;

        //@@{ 设置编码:setEncoding }
        设置编码(编码?: 文字): 本体;

        //@@{ 暂停:pause }
        暂停(): 本体;

        //@@{ 恢复:resume }
        恢复(): 本体;

        //@@{ 设置超时:setTimeout }
        设置超时(超时: 数字, 回调?: () => 无值): 本体;

        //@@{ 设置没有延迟:setNoDelay }
        设置没有延迟(没有延迟?: 真假): 本体;

        //@@{ 设置保持存活:setKeepAlive }
        设置保持存活(启用?: 真假, 初始延迟?: 数字): 本体;

        //@@{ 地址:address, 地址信息_:AddressInfo }
        地址(): 地址信息_ | 文字;

        //@@{ 解除限制:unref }
        解除限制(): 无值;

        //@@{ 限制退出:ref }
        限制退出(): 无值;

        //@@{ 缓冲区大小:bufferSize }
        只读 缓冲区大小: 数字;

        //@@{ 字节读:bytesRead }
        只读 字节读: 数字;

        //@@{ 字节写:bytesWritten }
        只读 字节写: 数字;

        //@@{ 连接中:connecting }
        只读 连接中: 真假;

        //@@{ 摧毁了:destroyed }
        只读 摧毁了: 真假;

        //@@{ 本地地址:localAddress }
        只读 本地地址: 文字;

        //@@{ 本地端口:localPort }
        只读 本地端口: 数字;

        //@@{ 远程地址:remoteAddress }
        只读 远程地址?: 文字;

        //@@{ 远程家族:remoteFamily }
        只读 远程家族?: 文字;

        //@@{ 远程端口:remotePort }
        只读 远程端口?: 数字;

        // Extended base methods

        //@@{ 结束:end }
        结束(回调?: () => 无值): 无值;

        //@@{ 结束:end, 缓冲区_:Buffer, 正整数数组8_:Uint8Array }
        结束(缓冲区: 缓冲区_ | 正整数数组8_ | 文字, 回调?: () => 无值): 无值;

        //@@{ 结束:end, 缓冲区_:Buffer, 正整数数组8_:Uint8Array }
        结束(字符串: 缓冲区_ | 正整数数组8_ | 文字, 编码?: 文字, 回调?: () => 无值): 无值;

        /**
         * events.EventEmitter
         *   1. close
         *   2. connect
         *   3. data
         *   4. drain
         *   5. end
         *   6. error
         *   7. lookup
         *   8. timeout
         */

        //@@{ 添加监听器:addListener }
        添加监听器(事件: 文字, 监听器: (...参数组: 任意[]) => 无值): 本体;

        //@@{ 添加监听器:addListener, "关闭":"close" }
        添加监听器(事件: "关闭", 监听器: (有_错误: 真假) => 无值): 本体;

        //@@{ 添加监听器:addListener, "连接":"connect" }
        添加监听器(事件: "连接", 监听器: () => 无值): 本体;

        //@@{ 添加监听器:addListener, "数据":"data", 缓冲区_:Buffer }
        添加监听器(事件: "数据", 监听器: (数据: 缓冲区_) => 无值): 本体;

        //@@{ 添加监听器:addListener, "排空":"drain" }
        添加监听器(事件: "排空", 监听器: () => 无值): 本体;

        //@@{ 添加监听器:addListener, "结束":"end" }
        添加监听器(事件: "结束", 监听器: () => 无值): 本体;

        //@@{ 添加监听器:addListener, "错误":"error", 错误_:Error }
        添加监听器(事件: "错误", 监听器: (错: 错误_) => 无值): 本体;

        //@@{ 添加监听器:addListener, "查找":"lookup", 错误_:Error }
        添加监听器(事件: "查找", 监听器: (错: 错误_, 地址: 文字, 家族: 文字 | 数字, 主机: 文字) => 无值): 本体;

        //@@{ 添加监听器:addListener, "超时":"timeout" }
        添加监听器(事件: "超时", 监听器: () => 无值): 本体;

        //@@{ 发出:emit }
        发出(事件: 文字 | 符号, ...参数组: 任意[]): 真假;

        //@@{ 发出:emit, "关闭":"close" }
        发出(事件: "关闭", 有_错误: 真假): 真假;

        //@@{ 发出:emit, "连接":"connect" }
        发出(事件: "连接"): 真假;

        //@@{ 发出:emit, "数据":"data", 缓冲区_:Buffer }
        发出(事件: "数据", 数据: 缓冲区_): 真假;

        //@@{ 发出:emit, "排空":"drain" }
        发出(事件: "排空"): 真假;

        //@@{ 发出:emit, "结束":"end" }
        发出(事件: "结束"): 真假;

        //@@{ 发出:emit, "错误":"error", 错误_:Error }
        发出(事件: "错误", 错: 错误_): 真假;

        //@@{ 发出:emit, "查找":"lookup", 错误_:Error }
        发出(事件: "查找", 错: 错误_, 地址: 文字, 家族: 文字 | 数字, 主机: 文字): 真假;

        //@@{ 发出:emit, "超时":"timeout" }
        发出(事件: "超时"): 真假;

        //@@{ 正在:on }
        正在(事件: 文字, 监听器: (...参数组: 任意[]) => 无值): 本体;

        //@@{ 正在:on, "关闭":"close" }
        正在(事件: "关闭", 监听器: (有_错误: 真假) => 无值): 本体;

        //@@{ 正在:on, "连接":"connect" }
        正在(事件: "连接", 监听器: () => 无值): 本体;

        //@@{ 正在:on, "数据":"data", 缓冲区_:Buffer }
        正在(事件: "数据", 监听器: (数据: 缓冲区_) => 无值): 本体;

        //@@{ 正在:on, "排空":"drain" }
        正在(事件: "排空", 监听器: () => 无值): 本体;

        //@@{ 正在:on, "结束":"end" }
        正在(事件: "结束", 监听器: () => 无值): 本体;

        //@@{ 正在:on, "错误":"error", 错误_:Error }
        正在(事件: "错误", 监听器: (错: 错误_) => 无值): 本体;

        //@@{ 正在:on, "查找":"lookup", 错误_:Error }
        正在(事件: "查找", 监听器: (错: 错误_, 地址: 文字, 家族: 文字 | 数字, 主机: 文字) => 无值): 本体;

        //@@{ 正在:on, "超时":"timeout" }
        正在(事件: "超时", 监听器: () => 无值): 本体;

        //@@{ 一次:once }
        一次(事件: 文字, 监听器: (...参数组: 任意[]) => 无值): 本体;

        //@@{ 一次:once, "关闭":"close" }
        一次(事件: "关闭", 监听器: (有_错误: 真假) => 无值): 本体;

        //@@{ 一次:once, "连接":"connect" }
        一次(事件: "连接", 监听器: () => 无值): 本体;

        //@@{ 一次:once, "数据":"data", 缓冲区_:Buffer }
        一次(事件: "数据", 监听器: (数据: 缓冲区_) => 无值): 本体;

        //@@{ 一次:once, "排空":"drain" }
        一次(事件: "排空", 监听器: () => 无值): 本体;

        //@@{ 一次:once, "结束":"end" }
        一次(事件: "结束", 监听器: () => 无值): 本体;

        //@@{ 一次:once, "错误":"error", 错误_:Error }
        一次(事件: "错误", 监听器: (错: 错误_) => 无值): 本体;

        //@@{ 一次:once, "查找":"lookup", 错误_:Error }
        一次(事件: "查找", 监听器: (错: 错误_, 地址: 文字, 家族: 文字 | 数字, 主机: 文字) => 无值): 本体;

        //@@{ 一次:once, "超时":"timeout" }
        一次(事件: "超时", 监听器: () => 无值): 本体;

        //@@{ 预处理监听器:prependListener }
        预处理监听器(事件: 文字, 监听器: (...参数组: 任意[]) => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "关闭":"close" }
        预处理监听器(事件: "关闭", 监听器: (有_错误: 真假) => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "连接":"connect" }
        预处理监听器(事件: "连接", 监听器: () => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "数据":"data", 缓冲区_:Buffer }
        预处理监听器(事件: "数据", 监听器: (数据: 缓冲区_) => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "排空":"drain" }
        预处理监听器(事件: "排空", 监听器: () => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "结束":"end" }
        预处理监听器(事件: "结束", 监听器: () => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "错误":"error", 错误_:Error }
        预处理监听器(事件: "错误", 监听器: (错: 错误_) => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "查找":"lookup", 错误_:Error }
        预处理监听器(事件: "查找", 监听器: (错: 错误_, 地址: 文字, 家族: 文字 | 数字, 主机: 文字) => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "超时":"timeout" }
        预处理监听器(事件: "超时", 监听器: () => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener }
        预处理一次监听器(事件: 文字, 监听器: (...参数组: 任意[]) => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "关闭":"close" }
        预处理一次监听器(事件: "关闭", 监听器: (有_错误: 真假) => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "连接":"connect" }
        预处理一次监听器(事件: "连接", 监听器: () => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "数据":"data", 缓冲区_:Buffer }
        预处理一次监听器(事件: "数据", 监听器: (数据: 缓冲区_) => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "排空":"drain" }
        预处理一次监听器(事件: "排空", 监听器: () => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "结束":"end" }
        预处理一次监听器(事件: "结束", 监听器: () => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "错误":"error", 错误_:Error }
        预处理一次监听器(事件: "错误", 监听器: (错: 错误_) => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "查找":"lookup", 错误_:Error }
        预处理一次监听器(事件: "查找", 监听器: (错: 错误_, 地址: 文字, 家族: 文字 | 数字, 主机: 文字) => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "超时":"timeout" }
        预处理一次监听器(事件: "超时", 监听器: () => 无值): 本体;
    }

    //@@{ 监听选项_:ListenOptions }
    接口 监听选项_ {

        //@@{ 端口:port }
        端口?: 数字;

        //@@{ 主机:host }
        主机?: 文字;

        //@@{ 待办事项列表:backlog }
        待办事项列表?: 数字;

        //@@{ 路径:path }
        路径?: 文字;

        //@@{ 相同描述符:exclusive }
        相同描述符?: 真假;

        //@@{ 可读的全部:readableAll }
        可读的全部?: 真假;

        //@@{ 可写所有:writableAll }
        可写所有?: 真假;
        /**
         * @default false
         */

        //@@{ Ipv6仅:ipv6Only }
        Ipv6仅?: 真假;
    }

    // https://github.com/nodejs/node/blob/master/lib/net.js

    //@@{ 服务器_:Server, 事件组:events, 事件发生器_:EventEmitter }
    类别 服务器_ 扩展 事件组.事件发生器_ {

        //@@{ 套接字_:Socket }
        构造(连接监听器?: (套接字: 套接字_) => 无值);

        //@@{ 允许半开:allowHalfOpen, 暂停在连接:pauseOnConnect, 套接字_:Socket }
        构造(选项组?: { 允许半开?: 真假, 暂停在连接?: 真假 }, 连接监听器?: (套接字: 套接字_) => 无值);

        //@@{ 监听:listen }
        监听(端口?: 数字, 主机名?: 文字, 待办事项列表?: 数字, 监听中监听器?: () => 无值): 本体;

        //@@{ 监听:listen }
        监听(端口?: 数字, 主机名?: 文字, 监听中监听器?: () => 无值): 本体;

        //@@{ 监听:listen }
        监听(端口?: 数字, 待办事项列表?: 数字, 监听中监听器?: () => 无值): 本体;

        //@@{ 监听:listen }
        监听(端口?: 数字, 监听中监听器?: () => 无值): 本体;

        //@@{ 监听:listen }
        监听(路径: 文字, 待办事项列表?: 数字, 监听中监听器?: () => 无值): 本体;

        //@@{ 监听:listen }
        监听(路径: 文字, 监听中监听器?: () => 无值): 本体;

        //@@{ 监听:listen, 监听选项_:ListenOptions }
        监听(选项组: 监听选项_, 监听中监听器?: () => 无值): 本体;

        //@@{ 监听:listen }
        监听(处理: 任意, 待办事项列表?: 数字, 监听中监听器?: () => 无值): 本体;

        //@@{ 监听:listen }
        监听(处理: 任意, 监听中监听器?: () => 无值): 本体;

        //@@{ 关闭:close, 错误_:Error }
        关闭(回调?: (错?: 错误_) => 无值): 本体;

        //@@{ 地址:address, 地址信息_:AddressInfo }
        地址(): 地址信息_ | 文字 | 空值;

        //@@{ 获取连接:getConnections, 错误_:Error }
        获取连接(回调: (错误: 错误_ | 空值, 数量: 数字) => 无值): 无值;

        //@@{ 限制退出:ref }
        限制退出(): 本体;

        //@@{ 解除限制:unref }
        解除限制(): 本体;

        //@@{ 最大连接:maxConnections }
        最大连接: 数字;

        //@@{ 连接数:connections }
        连接数: 数字;

        //@@{ 监听中:listening }
        监听中: 真假;

        /**
         * events.EventEmitter
         *   1. close
         *   2. connection
         *   3. error
         *   4. listening
         */

        //@@{ 添加监听器:addListener }
        添加监听器(事件: 文字, 监听器: (...参数组: 任意[]) => 无值): 本体;

        //@@{ 添加监听器:addListener, "关闭":"close" }
        添加监听器(事件: "关闭", 监听器: () => 无值): 本体;

        //@@{ 添加监听器:addListener, "连接":"connection", 套接字_:Socket }
        添加监听器(事件: "连接", 监听器: (套接字: 套接字_) => 无值): 本体;

        //@@{ 添加监听器:addListener, "错误":"error", 错误_:Error }
        添加监听器(事件: "错误", 监听器: (错: 错误_) => 无值): 本体;

        //@@{ 添加监听器:addListener, "监听":"listening" }
        添加监听器(事件: "监听", 监听器: () => 无值): 本体;

        //@@{ 发出:emit }
        发出(事件: 文字 | 符号, ...参数组: 任意[]): 真假;

        //@@{ 发出:emit, "关闭":"close" }
        发出(事件: "关闭"): 真假;

        //@@{ 发出:emit, "连接":"connection", 套接字_:Socket }
        发出(事件: "连接", 套接字: 套接字_): 真假;

        //@@{ 发出:emit, "错误":"error", 错误_:Error }
        发出(事件: "错误", 错: 错误_): 真假;

        //@@{ 发出:emit, "监听":"listening" }
        发出(事件: "监听"): 真假;

        //@@{ 正在:on }
        正在(事件: 文字, 监听器: (...参数组: 任意[]) => 无值): 本体;

        //@@{ 正在:on, "关闭":"close" }
        正在(事件: "关闭", 监听器: () => 无值): 本体;

        //@@{ 正在:on, "连接":"connection", 套接字_:Socket }
        正在(事件: "连接", 监听器: (套接字: 套接字_) => 无值): 本体;

        //@@{ 正在:on, "错误":"error", 错误_:Error }
        正在(事件: "错误", 监听器: (错: 错误_) => 无值): 本体;

        //@@{ 正在:on, "监听":"listening" }
        正在(事件: "监听", 监听器: () => 无值): 本体;

        //@@{ 一次:once }
        一次(事件: 文字, 监听器: (...参数组: 任意[]) => 无值): 本体;

        //@@{ 一次:once, "关闭":"close" }
        一次(事件: "关闭", 监听器: () => 无值): 本体;

        //@@{ 一次:once, "连接":"connection", 套接字_:Socket }
        一次(事件: "连接", 监听器: (套接字: 套接字_) => 无值): 本体;

        //@@{ 一次:once, "错误":"error", 错误_:Error }
        一次(事件: "错误", 监听器: (错: 错误_) => 无值): 本体;

        //@@{ 一次:once, "监听":"listening" }
        一次(事件: "监听", 监听器: () => 无值): 本体;

        //@@{ 预处理监听器:prependListener }
        预处理监听器(事件: 文字, 监听器: (...参数组: 任意[]) => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "关闭":"close" }
        预处理监听器(事件: "关闭", 监听器: () => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "连接":"connection", 套接字_:Socket }
        预处理监听器(事件: "连接", 监听器: (套接字: 套接字_) => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "错误":"error", 错误_:Error }
        预处理监听器(事件: "错误", 监听器: (错: 错误_) => 无值): 本体;

        //@@{ 预处理监听器:prependListener, "监听":"listening" }
        预处理监听器(事件: "监听", 监听器: () => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener }
        预处理一次监听器(事件: 文字, 监听器: (...参数组: 任意[]) => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "关闭":"close" }
        预处理一次监听器(事件: "关闭", 监听器: () => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "连接":"connection", 套接字_:Socket }
        预处理一次监听器(事件: "连接", 监听器: (套接字: 套接字_) => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "错误":"error", 错误_:Error }
        预处理一次监听器(事件: "错误", 监听器: (错: 错误_) => 无值): 本体;

        //@@{ 预处理一次监听器:prependOnceListener, "监听":"listening" }
        预处理一次监听器(事件: "监听", 监听器: () => 无值): 本体;
    }

    //@@{ TCP网络连接选项_:TcpNetConnectOpts, TCP套接字连接选项_:TcpSocketConnectOpts }
    //@@{ 套接字构造函数选项_:SocketConstructorOpts }
    接口 TCP网络连接选项_ 扩展 TCP套接字连接选项_, 套接字构造函数选项_ {

        //@@{ 超时:timeout }
        超时?: 数字;
    }

    //@@{ IPC网络连接选项_:IpcNetConnectOpts, IPC套接字连接选项_:IpcSocketConnectOpts }
    //@@{ 套接字构造函数选项_:SocketConstructorOpts }
    接口 IPC网络连接选项_ 扩展 IPC套接字连接选项_, 套接字构造函数选项_ {

        //@@{ 超时:timeout }
        超时?: 数字;
    }

    //@@{ 网络连接选项_:NetConnectOpts, TCP网络连接选项_:TcpNetConnectOpts, IPC网络连接选项_:IpcNetConnectOpts }
    类型 网络连接选项_ = TCP网络连接选项_ | IPC网络连接选项_;

    //@@{ 创建服务器:createServer, 套接字_:Socket, 服务器_:Server }
    函数 创建服务器(连接监听器?: (套接字: 套接字_) => 无值): 服务器_;

    //@@{ 创建服务器:createServer, 允许半开:allowHalfOpen, 暂停在连接:pauseOnConnect, 套接字_:Socket }
    //@@{ 服务器_:Server }
    函数 创建服务器(选项组?: { 允许半开?: 真假, 暂停在连接?: 真假 }, 连接监听器?: (套接字: 套接字_) => 无值): 服务器_;

    //@@{ 连接:connect, 网络连接选项_:NetConnectOpts, 套接字_:Socket }
    函数 连接(选项组: 网络连接选项_, 连接监听器?: () => 无值): 套接字_;

    //@@{ 连接:connect, 套接字_:Socket }
    函数 连接(端口: 数字, 主机?: 文字, 连接监听器?: () => 无值): 套接字_;

    //@@{ 连接:connect, 套接字_:Socket }
    函数 连接(路径: 文字, 连接监听器?: () => 无值): 套接字_;

    //@@{ 创建连接:createConnection, 网络连接选项_:NetConnectOpts, 套接字_:Socket }
    函数 创建连接(选项组: 网络连接选项_, 连接监听器?: () => 无值): 套接字_;

    //@@{ 创建连接:createConnection, 套接字_:Socket }
    函数 创建连接(端口: 数字, 主机?: 文字, 连接监听器?: () => 无值): 套接字_;

    //@@{ 创建连接:createConnection, 套接字_:Socket }
    函数 创建连接(路径: 文字, 连接监听器?: () => 无值): 套接字_;

    //@@{ 是IP:isIP }
    函数 是IP(输入: 文字): 数字;

    //@@{ 是IPV4:isIPv4 }
    函数 是IPV4(输入: 文字): 真假;

    //@@{ 是IPv6:isIPv6 }
    函数 是IPv6(输入: 文字): 真假;
}
